//
// Created by zhou on 2022/6/2.
// 本章定义的s_gets()函数，用指针表示法代替数组表示法可以减少一个变量i，改写这个函数
//
#include <stdio.h>
char * s_gets(char * st, int n);

int main(void)
{
    int size = 5;
    char temp[size];


    s_gets(temp, size);

    puts("你的输入是：");
    puts(temp);

    return 0;
}

// 传入一个字符串，以及长度
char * s_gets(char * st, int n)
{
    char * ret_val;
//    int i = 0;

    // st 和 ret_val 牢牢绑在了一起
    ret_val = fgets(st, n, stdin);      // fgets() 返回指向char的指针，正常情况下返回的地址和第一个参数相同
    if (ret_val) // 即 ret_val != NULL
    {
        while (*st != '\n' && *st != '\0')
            st++;
        if (*st = '\n')
            *st = '\0';
        else
            while (getchar() != '\n')
                continue;
    }

    return ret_val;
}